package com.tianlaiedu.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class MapperUtil {
    // 让玩家无法直接创建对象
    private MapperUtil(){}
    // 静态工厂类对象
    private static SqlSessionFactory sqlSessionFactory = null;

    // 饿汉式单列模式，在第一次使用时才会创建，后面就会直接返回之前已经创建的对象
    public static SqlSessionFactory getSqlSessionFactory(){
        if (sqlSessionFactory == null){
            try {
                // 获取mybaits核心配置文件的流对象
                InputStream in = Resources.getResourceAsStream("mybatisConfig.xml");
                // 获取sqlsession工厂对象
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
            } catch (IOException e) {
                throw new RuntimeException(e.getMessage());
            }
        }
        return sqlSessionFactory;
    }
}
